#ifndef LOMINSTREAMHH
#define LOMINSTREAMHH
#include "typedefs.hh"
#include "lom-typedefs.hh"

namespace lom
{
    class LomClassManager;
    class LomValue;
    class LomInstance;
    class LomClass;

    
    class ILomInStream
    {
    public:
	virtual ~ILomInStream() {}
	
	//Handles and indexes are uint32 values 
	virtual void operator>>( licada::uint32& val ) = 0;
	virtual void operator>>( licada::TNameStr& val ) = 0;
	virtual void operator>>( LomValue*& val ) = 0; 
	virtual void operator>>( TValueVector& val) = 0;
	virtual void operator>>( LomInstance& val ) = 0;
	virtual void operator>>( LomClass& val ) = 0;
    };
    

}

#endif
